package com.quan.weixin.handle;

import java.util.Map;

import org.springframework.stereotype.Component;

import com.quan.common.utils.WebUtils;

import me.chanjar.weixin.common.api.WxConsts;
import me.chanjar.weixin.common.api.WxConsts.XmlMsgType;
import me.chanjar.weixin.common.session.WxSessionManager;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;

/**
 * @author Binary Wang(https://github.com/binarywang)
 */
@Component
public class MsgHandler extends AbstractHandler {
	
    @Override
    public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage,
                                    Map<String, Object> context, WxMpService weixinService,
                                    WxSessionManager sessionManager) {
    	
    	logger.debug("==>微信消息类型，MsgType：{}， Event：{}， EventKey：{}", wxMessage.getMsgType(), wxMessage.getEvent(), wxMessage.getEventKey());
    	
        if (wxMessage.getMsgType().equals(XmlMsgType.EVENT)) {

        	if(wxMessage.getEvent().equals(WxConsts.EventType.CARD_USER_GET_CARD)) { //  用户领取卡券
        		//解析获取OuterStr里面的参数
        		Map<String, String> map = WebUtils.URLRequest(wxMessage.getOuterStr());
        		logger.info("==>用户领取卡券，商户ID：{}，活动ID：{}，Openid：{}，卡券ID：{}，券码：{}", map.get("tenantId"), map.get("activityId"), wxMessage.getFromUser(), wxMessage.getCardId(), wxMessage.getUserCardCode()) ;;
        		
        		
        	} else if(wxMessage.getEvent().equals(WxConsts.EventType.CARD_USER_CONSUME_CARD)) { // 用户核销卡券
        		logger.info("==>用户核销卡券，Openid：{}，卡券ID：{}，券码：{}", wxMessage.getFromUser(), wxMessage.getCardId(), wxMessage.getUserCardCode()) ;;
        		
        	}
        } else {
        	logger.info("无法处理...");
        }
        
        return null ;

    }

}
